package com.qiangesoft.blog.core.service;

import com.qiangesoft.blog.common.mvc.PageQuery;
import com.qiangesoft.blog.common.mvc.PageResultVO;
import com.qiangesoft.blog.core.entity.BlogSource;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qiangesoft.blog.core.pojo.query.SourceQueryDTO;
import com.qiangesoft.blog.core.pojo.vo.ArticleInfoVO;
import com.qiangesoft.blog.core.pojo.vo.ArticleListVO;
import com.qiangesoft.blog.core.pojo.vo.BlogSourceSimpleVO;
import com.qiangesoft.blog.core.pojo.vo.SourceInfoVO;

import java.util.List;

/**
 * <p>
 * 源码 服务类
 * </p>
 *
 * @author qiange
 * @since 2023-06-08
 */
public interface IBlogSourceService extends IService<BlogSource> {

    List<BlogSourceSimpleVO> listTopDownloadSource(Integer limit);

    PageResultVO<SourceInfoVO> listSource(PageQuery pageQuery);

    ArticleInfoVO getSource(Long id);


    PageResultVO<BlogSource> pageSource(PageQuery pageQuery, SourceQueryDTO sourceQuery);

    BlogSource getSourceById(Long id);

    void insertSource(BlogSource source);

    void updateSource(BlogSource source);

    void deleteSource(Long id);

    void deleteBatchSource(List<Long> ids);

    void putTopSource(BlogSource source);

    void publishAndShelf(BlogSource source);
}
